package org.linuxsogood.boot.nio;

import java.nio.IntBuffer;

/**
 * 8 大基本类型,除了boolean都有对应的Buffer类
 * buffer的4个基本属性
 * limit 限制读取的位置, 非闭合区间
 * position 位置, 从哪个位置开始读取
 * capacity 容量, buffer的容量
 * mark 标记
 * @author honway.liu
 * @date 2019/11/20 10:32 下午
 * @email gm100861@gmail.com
 * @blog http://linuxsogood.org
 */
public class BasicBuffer {

    public static void main(String[] args) {
        // 举例说明Buffer的使用
        // 创建一个Buffer, 大小为5, 可以存放5个int
        IntBuffer buffer = IntBuffer.allocate(5);
        for (int i = 0; i < buffer.capacity(); i++) {
            buffer.put(i * 2);
        }

        // 如何从buffer中读数据
        // 将buffer转换, 读写切换
        buffer.flip();
        buffer.position(2);
        buffer.limit(3);
        while (buffer.hasRemaining()) {
            System.out.println(buffer.get());
        }
    }
}
